package plataforma.autenticacao.util;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

public class PropertyPlacementConfigurerEncrypt extends PropertyPlaceholderConfigurer {

    static final String CHAVE = "cad111111111111111111111";
    private Encrypter decripter = new Encrypter(CHAVE);
    public static final String CORINGA = "<ENCRYPTED>";

    /**
    Metodo chamado no momento em que a propriedade e carregada do arquivo de properties
     * Se tiver o coringa na frente, significa que e uma variavel encriptada e precisa ser desencriptada
    
     */
    @Override
    protected String convertPropertyValue(String strVal) {


        if (strVal.contains(CORINGA)) {
            //removo o coringa
            String valorEncriptado = strVal.substring(CORINGA.length());
            // Converto o valor
            String valorDesencriptado = decripter.decrypt(valorEncriptado);
            return valorDesencriptado;
        } else {
            return strVal;
        }
    }
}
